<!DOCTYPE html>
<html lang="en"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>商品详情</title>
    <!-- jquery -->
    <script type="text/javascript" th:src="@{/js/jquery.min.js}"></script>
    <!-- bootstrap -->
    <link rel="stylesheet" type="text/css" th:href="@{/bootstrap/css/bootstrap.min.css}"/>
    <script type="text/javascript" th:src="@{/bootstrap/js/bootstrap.min.js}"></script>
    <!-- layer -->
    <script type="text/javascript" th:src="@{/layer/layer.js}"></script>
    <!-- common.js -->
    <script type="text/javascript" th:src="@{/js/common.js}"></script>
</head>
<body>
<div class="panel panel-default">
    <div class="panel-heading">秒杀商品详情</div>
    <div class="panel-body">
        <span th:if="${user eq null}"> 您还没有登录，请登陆后再操作<br/></span>
        <span>没有收货地址的提示。。。</span>
    </div>
    <table class="table" id="goods">
        <tr>
            <td>商品名称</td>
            <td colspan="3" th:text="${goods.goodsName}"></td>
        </tr>
        <tr>
            <td>商品图片</td>
            <td colspan="3"><img th:src="@{${goods.goodsImg}}" width="200" height="200"/></td>
        </tr>
        <tr>
            <td>秒杀开始时间</td>
            <td th:text="${#dates.format(goods.startDate,'yyyy-MM-dd HH:mm:ss')}"></td>
            <td id="seckillTip">
                <input type="hidden" id="remainSeconds" th:value="${remainSeconds}">
                <span th:if="${seckillStatus eq 0}">秒杀倒计时: <span id="countDown" th:text="${remainSeconds}"></span>秒
                </span>
                <span th:if="${seckillStatus eq 1}">秒杀进行中</span>
                <span th:if="${seckillStatus eq 2}">秒杀已结束</span>
            </td>
            <td>
                <div class="row">
                    <div class="form-inline">
                        <img id="captchaImg" onclick="refreshCaptcha()" height="32" width="130">
                        <input id="captcha" class="form-control">
                        <button class="btn btn-primary" type="submit" id="buyButton"
                                onclick="getSeckillPath()">立即秒杀
                        </button>
                    </div>
                </div>
            </td>
        </tr>
        <tr>
            <td>商品原价</td>
            <td colspan="3" th:text="${goods.goodsPrice}"></td>
        </tr>
        <tr>
            <td>秒杀价</td>
            <td colspan="3" th:text="${goods.seckillPrice}"></td>
        </tr>
        <tr>
            <td>库存数量</td>
            <td colspan="3" th:text="${goods.stockCount}"></td>
        </tr>
    </table>
</div>
</body>
<script>
    var goodsId = [[${goods.id}]];
    $(function () {
        countDown();
    });

    function countDown() {
        var remainSeconds = $("#remainSeconds").val();
        var timeout;
        //秒杀还未开始
        if (remainSeconds > 0) {
            $("#buyButton").attr("disabled", true);
            timeout = setTimeout(function () {
                $("#countDown").text(remainSeconds - 1);
                $("#remainSeconds").val(remainSeconds - 1);
                countDown();
            }, 1000);
            // 秒杀进行中
        } else if (remainSeconds == 0) {
            $("#buyButton").attr("disabled", false);
            if (timeout) {
                clearTimeout(timeout);
            }
            $("#seckillTip").html("秒杀进行中")
            $("#captchaImg").attr("src", "/seckill/captcha?goodsId=" + goodsId + "&time=" + new Date());
            $("#captchaImg").show();
            $("#captcha").show();
        } else {
            $("#buyButton").attr("disabled", true);
            $("#seckillTip").html("秒杀已经结束");
            $("#captchaImg").hidden();
            $("#captcha").hidden();
        }
    };

    /**
     * 获取验证码
     */
    function refreshCaptcha() {
        $("#captchaImg").attr("src", "/seckill/captcha?goodsId=" + goodsId + "&time=" + new Date());
    }

    /**
     * 获取秒杀路径
     */
    function getSeckillPath() {
        var captcha = $("#captcha").val();
        $.ajax({
            url: "/seckill/path",
            type: "get",
            data: {
                goodsId: goodsId,
                captcha: captcha
            },
            success: function (data) {
                if (data.code == 200) {
                    var path = data.obj;
                    seckill(path);
                } else {
                    layer.msg(data.message);
                }
            },
            error: function () {
                layer.msg("客户端请求错误");
            }
        })
    }

    /**
     * 秒杀
     */
    function seckill(path) {
        $.ajax({
            url: "/seckill/" + path + "/doSeckill",
            type: "post",
            data: {
                goodsId: goodsId
            },
            success: function (data) {
                if (data.code == 200) {
                    var orderId = data.obj;
                    if (orderId == 0) {
                        layer.open({
                            type: 0,
                            title: "提示",
                            content: "正在排队中......",
                            area: ['300px', '300px'],
                            shade: 0.8,
                            shadeClose: false
                        })
                        getResult();
                    }
                } else {
                    layer.msg(data.message)
                }
            },
            error: function () {
                layer.msg("客户端请求失败")
            }
        })
    }

    function getResult() {
        $.ajax({
            url: "/seckill/result",
            type: "get",
            data: {
                goodsId: goodsId
            },
            success: function (data) {
                if (data.code == 200) {
                    var result = data.obj;
                    if (result == -1) {
                        layer.msg("对不起,秒杀失败");
                        layer.close(index);
                    }
                    if (result == 0) {
                        setTimeout(function () {
                            getResult();
                        }, 100);
                    } else {
                        layer.confirm("恭喜您，秒杀成功!是否查看订单?", {btn: ["确定", "取消"]},
                            function () {
                                window.location.href = "/order/detail?orderId=" + result
                            },
                            function () {
                                window.location.href = "/goods/toDetail?goodsId=" + goodsId
                            }
                        );
                    }
                }
            },
            error: function () {
                layer.msg("客户端请求失败")
            }
        })
    }
</script>
</html>